package ec.edu.ups.cidi.siia.plamdep.moduloweb.servicio;

import java.util.ArrayList;
import java.util.List;

import javax.inject.Inject;
import javax.jws.WebMethod;
import javax.jws.WebService;

import ec.edu.ups.cidi.siia.plamdep.moduloweb.dao.AlgoritmosDAO;
import ec.edu.ups.cidi.siia.plamdep.moduloweb.modeloBD.Algoritmo;
import ec.edu.ups.cidi.siia.plamdep.moduloweb.modeloWS.AlgoritmoRegistro;
import ec.edu.ups.cidi.siia.plamdep.moduloweb.modeloWS.Respuesta;


@WebService
public class AlgoritmosWS 
{
	
	
	@Inject AlgoritmosDAO algDao;
	@Inject ProcesamientoPeticiones process;
	
	
	@WebMethod
	public Respuesta registrarAlgoritmo(AlgoritmoRegistro algr)
	{
		Respuesta r=new Respuesta();
		r.setCodigoPeticion("00");
		try{
			Algoritmo alg=new Algoritmo();
			alg.setCanonicalName(algr.getPaqueteAlgoritmo());
			alg.setDescripcion(algr.getDescripcion());
			alg.setNombre(algr.getNombre());
			alg.setRuta(algr.getRuta());
			alg.setTipo(algr.getTipo());
	
			
			algDao.create(alg);
			process.arrancar();
			
			r.setEstado(1);
			r.setObservacion("Registro de algoritmo realizado");
		
		}catch(Exception e)
		{
			r.setEstado(1);
			r.setObservacion("Error: registro de algoritmo no realizado");
			e.printStackTrace();
		}
		return r;
	}
	@WebMethod
	public List<AlgoritmoRegistro> listarAlgoritmos()
	{
		List<AlgoritmoRegistro> algoritmos=new ArrayList<AlgoritmoRegistro>();
		try
		{
			List<Algoritmo> algoritmosAlmacenados=algDao.listar();
			for(Algoritmo alg:algoritmosAlmacenados)
			{
				AlgoritmoRegistro a=new AlgoritmoRegistro();
				a.setDescripcion(alg.getDescripcion());
				a.setNombre(alg.getNombre());
				a.setPaqueteAlgoritmo(alg.getCanonicalName());
				a.setRuta(alg.getRuta());
				a.setTipo(alg.getTipo());
				
				algoritmos.add(a);
			}
		}catch(Exception e){}
		return algoritmos;
	}
	
	
	
	
}
